RequisicionInventario = function(){
	var configWindowTop = {
		add: "requisicionInventarioAgregarTop",
		remove: "requisicionInventarioEliminarTop",
	};
	return {
		guardaRequisicionInventario: function(){
			Asi.message.progress(Asi.constants.SAVING);
				Ext.getCmp("requisicionInventarioForm").getForm().submit({
					url: Asi.constants.CONTEXT_PATH + "/empleado/guardarRequisicion",
	    			timeout: Asi.constants.TIMEOUT_SECONDS,
	    			params: {
	    				"cantidad": RequisicionInventario.obtenerCantidad(),
	    				"materiaPrimaId": RequisicionInventario.obtenerMateriaPrimaId(),
	    				"detalle": RequisicionInventario.obtenerDetalle(),
	    				"clienteId": AsiGen.getUsuarioId()
	    			},
	    			success: function(form, action){
	    				Asi.message.alert(action.result.message);
	    				var gridCompra = Ext.getCmp("requisicionInventarioGrid");
	    				gridCompra.getStore().removeAll();
	    				gridCompra.getStore().sync();
	    			},
	    			failure: Asi.form.failureProcedure
				});
		},
		obtenerCantidad: function(){
			var i = 0;
			var gridCompra = Ext.getCmp("requisicionInventarioGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(gridCompra.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("requisicionInventarioGrid").getStore().getRange()[i].data.cantidad + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		
		
		obtenerMateriaPrimaId: function(){
			var i = 0;
			var gridCompra = Ext.getCmp("requisicionInventarioGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(gridCompra.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("requisicionInventarioGrid").getStore().getRange()[i].data.materiaPrimaId + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		
		
		obtenerDetalle: function(){
			var i = 0;
			var gridCompra = Ext.getCmp("requisicionInventarioGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(gridCompra.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("requisicionInventarioGrid").getStore().getRange()[i].data.detalle + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		
		
		agregarAlMateriaPrima: function(){
			Asi.utils.isValid("cantidad");
			Asi.utils.isValid("productos");
			Ext.getCmp("requisicionInventarioGrid").getStore().add({
					cantidad: Ext.getCmp("cantidad").getValue(), 
					materiaPrima: Ext.getCmp("productos").displayTplData[0].materiaPrimaNombre, 
					materiaPrimaId: Ext.getCmp("productos").displayTplData[0].materiaPrimaId,
					detalle: Ext.getCmp("detalle").getValue()
			});
			Asi.form.clearAndEnable("requisicionInventarioForm");
		},
		eliminarMateriaPrima: function(){
			var grid = Ext.getCmp("requisicionInventarioGrid");
			var sm = Ext.getCmp("requisicionInventarioGrid").getSelectionModel();
			if(sm.getSelection()[0]){
				var p = {grid:this, sm:sm};
				Asi.message.confirmDelete(function(p){
					var deleteOnServer = !Ext.isEmpty(p.sm.getSelection()[0].get("materiaPrimaId"));
					grid.store.remove(p.sm.getSelection()[0]);
					if(deleteOnServer) grid.store.destroy();
				},p);
			}else{
				Asi.message.alert("Antes seleccione el registro que desea eliminar.");
			}
		},
		init: function(config){
			var configToReturn = {};
			configToReturn.items = [];
			configToReturn.menu = AsiBotones.getBotones(AsiGen.getTipoUsuario(), AsiGen.getPantallaId());
			configToReturn.items.push({
				flex: 1,
				title: "REQUISICI\u00d3N DE INVENTARIO",
				autoScroll: true,
				layout : {
					type : "table",
					columns : 1,
					tableAttrs : {
						style : {
							width : "730px",
							"margin-top" : "5px",
							"margin-bottom" : "40px"
						},
						align : "center"
					}
				},
//				modal : true,
				closable : false,
				defaults: {width: 730, margins: "5 0 5 0"},
				dockedItems: [
					{
						xtype: "toolbar",
						dock: "top",
						items: [
						   '->',
					       {
					    	   text: "Guardar",
					    	   id: "requisicionInventarioGuardarTop",
							   iconCls: Asi.constants.icons.SAVE_ICON,
							   handler: RequisicionInventario.guardaRequisicionInventario
					       }
					    ]
					}
	            ],
				items: [
					{
						xtype: "grid",
						title: "LISTA DE MATERIA PRIMA A SOLICITAR",
						id: "requisicionInventarioGrid",
						height: 240,
						width:730,
						collapsible: true,
						colspan: 6,
						minHeight: 10,
						store: new Ext.data.SimpleStore({
					    	data: [],
					    	fields: [
								"cantidad",
								"materiaPrima",
								"materiaPrimaId",
								"detalle"
			    	        ]
					    }),
					    columns: [
					              {header: "Cantidad",  dataIndex: "cantidad", flex: 1},
							      {header: "Materia Prima",  dataIndex: "materiaPrima",flex: 1},
							      {header: "Detalle",  dataIndex: "detalle",flex: 1}
					    ]
//					    ,listeners: {
//					    	change: function(dv, record, item, index, e) {
//					    		if(this.store.data.items.length > 0) {
//					    			Asi.utils.setDisabled("requisicionInventarioGuardarTop", false);
////						    		Ext.getCmp("requisicionInventarioAgregarTop").setDisabled(false);
//						    	} else {
////						    		Ext.getCmp("requisicionInventarioAgregarTop").setEnabled(false);
//						    		Asi.utils.setDisabled("requisicionInventarioGuardarTop", true);
//						    	}
//					        }
//					    }
					},{
			        	xtype: "form",
						id: "requisicionInventarioForm",
						flex: 1,
					    border: false,
						layout: {
							type: "table",
							columns: 6,
							tableAttrs: {
					            style: {width: "730px"},
					            align: "center"
					        }
						},
						defaults: {
							width: 230,
							selectOnFocus: true,
							enforceMaxLength: true,
							maxLength: 200,
							typeAhead: true,
							minChars: 1,
							queryMode: "local",
							forceSelection: true,
							allowEnable: true,
							colspan: 2
						},
						items: [
						    {xtype: "label", text: "Cantidad", cls: "x-form-item label_spacing", colspan: 2},
							{xtype: "label",text: "Materia prima", cls: "x-form-item label_spacing", colspan: 2},
							{xtype: "label", text: "Detalle", cls: "x-form-item label_spacing", colspan: 2},
							
{
								
								xtype : "numberfield",
								id:"cantidad",
								name : "requisicionInventario.ProductoCantidadTalonarios",
								minValue: 1,
								allowBlank: true,
								colspan:2
							},
							
							
							{
								xtype: "combo",
								id:"productos",
								name: "ctgPrefijo.ctgCatalogoId",
								store: new Ext.data.SimpleStore({
									data: config.materiaPrima || [],
									fields: ["materiaPrimaId", "materiaPrimaNombre"]
								}),
								displayField: "materiaPrimaNombre",
								valueField: "materiaPrimaId",
								colspan: 2,
								allowBlank: true
							},
							
							{
								xtype: "textarea",
								id:"detalle",
								name: "ctgTipoChequera.ctgCatalogoId",
								colspan: 2,
								maxLenght: 250
							},
							
							{
								xtype: "button",
								colspan: 6,
								iconCls: Asi.constants.icons.SHOPPIN_CAR,
								cls: "background",
								tooltip: "Agregar Materia Prima",
								text: "Agregar Materia Prima",
								handler : RequisicionInventario.agregarAlMateriaPrima
							}
							
						]
						
			        }

				]
			});
			return configToReturn;
		}
	};
}();